Skip to content

ci: pin iOS/Mac Catalyst workload set + Xcode version for todoapp-uno ios-maccatalyst build#561

Merged
adrianhall merged 3 commits into
CommunityToolkit:mainfrom
adrianhall:issues/559
Jul 11, 2026
Merged

ci: pin iOS/Mac Catalyst workload set + Xcode version for todoapp-uno ios-maccatalyst build#561
adrianhall merged 3 commits into
CommunityToolkit:mainfrom
adrianhall:issues/559

Conversation

@adrianhall

Copy link
Copy Markdown
Collaborator

Summary

Fixes #559.

todoapp-uno / ios-maccatalyst calls dotnet workload install ios maccatalyst
unpinned, which always resolves the newest published Microsoft.iOS.Sdk.net10.0_*
pack. As of workload set 10.0.108, that's 26.5.10284, which requires Xcode
26.5 - not installed on macos-latest (currently Xcode 16.4), causing:

This version of .NET for iOS (26.5.10284) requires Xcode 26.5. The current version of Xcode is 16.4.

This is the same failure class as #529, fixed for todoapp-avalonia / ios and
todoapp-maui / ios in #530. todoapp-uno was intentionally left out of that
PR (not yet wired into build-samples.yml, blocked by #506) and was missed
once it was wired in, so ios-maccatalyst kept floating on macos-latest
unpinned.

What changed

todoapp-uno / ios-maccatalyst now:

  1. Pins runs-on to macos-15 (instead of macos-latest) so the Xcode
    version available on the runner is deterministic, matching the
    todoapp-avalonia / ios and todoapp-maui / ios jobs.
  2. Explicitly selects Xcode 26.3 via sudo xcode-select -s /Applications/Xcode_26.3.app.
    Xcode 26.3 is already installed on the macos-15 image, just not the
    default (16.4).
  3. Pins the iOS + Mac Catalyst workload install to workload set 10.0.107
    via dotnet workload install ios maccatalyst --version 10.0.107, scoped
    only to this job's env/steps (not a repo-wide global.json, for the same
    reasons documented in ci: pin iOS workload set + Xcode version for todoapp-avalonia/maui iOS builds #530). 10.0.107 is the last workload set before the
    iOS/MacCatalyst/macOS/tvOS manifest moved to the 26.4/26.5 pack line,
    resolving to Microsoft.iOS.Sdk.net10.0_26.2 (26.2.10233), which requires
    exactly Xcode 26.3.

Both the iOS and Mac Catalyst restore/build steps stay in the single job as
they are today, since both TFMs need the same pinned Xcode/workload set.

No other jobs in build-samples-todoapp-uno.yml (android, windows,
browserwasm, desktop) are touched.

Validation

Ran the full build-samples.yml via workflow_dispatch on this branch twice
to confirm the fix is deterministic, not a flaky pass:

All other jobs (including todoapp-avalonia / ios and todoapp-maui / ios,
unaffected by this job-scoped change) passed in both runs, confirming no
regression there.

Follow-up

Revisit this job once we deliberately upgrade to a newer, Xcode-26-compatible
workload set, same as the follow-up already called out for the sibling
todoapp-avalonia / ios and todoapp-maui / ios jobs in #530.

ahall and others added 3 commits July 11, 2026 09:27
Samples require platform SDKs/workloads not guaranteed to be available
locally. Document the proper validation approach: push the branch to
the local fork and trigger the Build Samples workflow via
workflow_dispatch, then poll for results. Note that a full run across
all samples takes approximately 6 minutes end-to-end, so agents can
set correct timing expectations when polling.
… ios-maccatalyst build

Fixes CommunityToolkit#559.

Applies the same fix as CommunityToolkit#530 (todoapp-avalonia/maui ios jobs) to
todoapp-uno's ios-maccatalyst job: dotnet workload install ios
maccatalyst was unpinned, resolving the newest Microsoft.iOS.Sdk
pack (26.5.10284, requiring Xcode 26.5) which isn't available on
macos-latest (currently Xcode 16.4). Pin runs-on to macos-15,
explicitly select the already-installed Xcode 26.3, and pin the
workload install to workload set 10.0.107 (resolves to
Microsoft.iOS.Sdk.net10.0_26.2.10233, which requires Xcode 26.3).
@adrianhall adrianhall merged commit 4d8200b into CommunityToolkit:main Jul 11, 2026
20 checks passed
@adrianhall adrianhall deleted the issues/559 branch July 11, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: todoapp-uno / ios-maccatalyst build fails - .NET for iOS/MacCatalyst 26.5 requires Xcode 26.5, macos-latest only has Xcode 16.4

1 participant